require(["./config"], function() {
	require(["jquery", "template", "loadHF", "cookie"], function($, template) {
		function Cart() {
			// 配置，使得 cookie 插件在使用时，获取/保存 cookie 不用再手动转换类型
			$.cookie.json = true;
			this.jiage=0;
			this.loadCart();
			this.radsumclick();
			this.radclick();
			this.removeclick();
			this.addandreduce();
			this.myinput();
			console.log($.cookie("cart"));
		}
		Cart.prototype = {
			constructor: Cart,
			loadCart() {
				// 从 cookie 中读取购物车内保存的数据
				const cart = $.cookie("cart") || []
				// 判断是否为空数组
				if (cart.length === 0) {
//					$("div.empty").removeClass("hidden").next("div.not-empty").addClass("hidden")
					$(".car_main h1").show().siblings("h2").show();
					$(".car_main>table").hide();
					return;
				}

				// 如果有购物车数据
				const data = {cart: cart}
				const html = template("cart-template", data)
				$("tbody.cart-body").html(html)
			},
//			
//			sum(){
//				var zong=$(".car_main>.sum>span");
//				console.log(zong.text());
//			},
			radsumclick(){
				$(".car_main table").click(function(event){
					var radsum=$(".car_main th>input.th");
					var rad=$(".car_main td>input.td");
					if(event.target.parentNode.nodeName=="TH")
					{
					var a=radsum.prop("checked");
					rad.prop("checked",a);
						this.jiage=0;
						var cur=$(".car_main td>input.td:checked");
						console.log(cur);
						for(var i=0;i<cur.length;i++)
						{
							var a=cur.eq(i).parent().siblings("td.price").text();
//							console.log(typeof a);
							a=parseFloat(a);
//							console.log(a);
							this.jiage+=a;
//							console.log(typeof this.jiage);
						}
						
						$(".car_main>.sum>span").text("总计为："+this.jiage.toFixed(2)+"元");
					}
					
				})
			},
			
			radclick(){
				$(".car_main table").click((event)=>{
					var radsum=$(".car_main th>input.th");
					var rad=$(".car_main td>input.td");
					this.jiage=0;
					if(event.target.parentNode.nodeName=="TD")
					{
						var n=Array.from(rad).every((ele,index)=>{
							return $(ele).prop("checked")==true;
						});
						if(n)
						{
							radsum.prop("checked",true);
						}
						else
						{
							radsum.prop("checked",false);
						}
						var cur=$(".car_main td>input.td:checked");
						for(var i=0;i<cur.length;i++)
						{
							var a=cur.eq(i).parent().siblings("td.price").text();
							a=parseFloat(a);
							this.jiage+=a;
						}
						
						$(".car_main>.sum>span").text("总计为："+this.jiage.toFixed(2)+"元");
						
					}
				})
		},
		removeclick(){
			var remo=$(".car_main td a");
//			console.log(remove.get(0));
			$(".car_main table").on("click","td>a",(event)=>{
					event.preventDefault();
					console.log(event.target);
					var src=event.target;
					var Id=$(src).parents("tr").children("td").eq(1).text();
					console.log(Id);
					var cart = $.cookie("cart") || [];
				
				for(var i=0;i<cart.length;i++)
				{
					if(cart[i].id==Id)
					{
						cart.splice(i,1);
						break;
					}
				}
				let len=cart.length;
				$(".you>.circle").text(len);
				$.cookie("cart", cart, {expires: 7, path: "/"})
					$(src).parents("tr").remove();
			})
			
		},
		addandreduce(){
			$(".car_main table").on("click","td>button",(event)=>{
				var src=event.target;
				var index=$(src).index();
				var shu=$(src).parents("tr").children(".shu").children("input").val();
				var price=$(src).parents("tr").children(".price").text();
				var dan=$(src).parents("tr").children(".dan").text();
				console.log(index);
				if(index==2)
				{
					$(src).parents("tr").children(".shu").children("input").val(Number(shu)+1);
					price=(Number(shu)+1)*dan;
					price=price.toFixed(2);
					$(src).parents("tr").children(".price").text(price);
					
					var Id=$(src).parents("tr").children("td").eq(1).text();
					console.log(Id);
					var cart = $.cookie("cart") || [];
				
					for(var i=0;i<cart.length;i++)
					{
						if(cart[i].id==Id)
						{
							cart[i].amount=Number(shu)+1;
							
						}
					}
				}
				if(index==0)
				{
					var amount=$(src).parents("tr").children(".shu").children("input").val();
					console.log(amount);
					if(amount==1)
					{
						return 
					}
					else{
						$(src).parents("tr").children(".shu").children("input").val(Number(shu)-1);
						price=(Number(shu)-1)*dan;
						price=price.toFixed(2);
						$(src).parents("tr").children(".price").text(price);
						
						var Id=$(src).parents("tr").children("td").eq(1).text();
						console.log(Id);
						var cart = $.cookie("cart") || [];
				
						for(var i=0;i<cart.length;i++)
						{
							if(cart[i].id==Id)
							{
								cart[i].amount=Number(shu)-1;
								
							}
						}

					}
				}
				
				$.cookie("cart", cart, {expires: 7, path: "/"});
			});
		},
		myinput(){
			var reg=/^[1-9][0-9]{0,2}$/;
			$(".car_main table").on("blur","td>input.shuru",(event)=>{
//				console.log(event.target);
				var src=event.target;
				var value=$(src).val();
				var dan=$(src).parents("tr").children(".dan").text();
				var price=$(src).parents("tr").children(".price").text();
//				console.log(value);
				var cookvalue;
				var Id=$(src).parents("tr").children("td").eq(1).text();
//				console.log(Id);
				var cart = $.cookie("cart") || [];
				
					for(var i=0;i<cart.length;i++)
					{
						if(cart[i].id==Id)
						{
							cookvalue=cart[i].amount;
							console.log(cookvalue);
							console.log(cart);
							break;
							
						}
					}
				if(reg.test(value)==false)
				{
					$(src).val(cookvalue);
					return ;
				}
				else
				{
					price=value*dan;
					price=price.toFixed(2);
					$(src).parents("tr").children(".price").text(price);
					
//					var radsum=$(".car_main th>input.th");
//					var rad=$(".car_main td>input.td");
					this.jiage=0;
					var cur=$(".car_main td>input.td:checked");
					for(var i=0;i<cur.length;i++)
					{
							var a=cur.eq(i).parent().siblings("td.price").text();
							a=parseFloat(a);
							this.jiage+=a;
					}
						
						$(".car_main>.sum>span").text("总计为："+this.jiage.toFixed(2)+"元");

					for(var i=0;i<cart.length;i++)
					{
						if(cart[i].id==Id)
						{
							cart[i].amount=value;
							break;
							
						}
					}
					
					$.cookie("cart", cart, {expires: 7, path: "/"});
					
					
					
					
				}
				
				
				
				
				
				
				
			});
			
			
			
			
			
			
			
		}
		
		
		
		
		
	}

		new Cart();
	})
})